/*
 * Copyright (c) 2022  by Junzhao
 * THIS FILE IS PART OF JAVA-Data-Structures-and-Algorithms PROJECT
 * All Rights Reserved.
 */

package 二叉树.前中后序查找;

import 节点.Node;

/**
 * @Description 查找
 * 使用前序查找，中序查找和后序查找的方法。
 * 并分别使用三种查找方式，查找 heroNO = 5 的节点
 * 并分析各种查找方式，分别比较了 多少次
 * @Author 俊昭
 * @Date 2022/5/4
 */
public class BinaryTree {
    // 构造一个二叉树
    private static final Node root = new Node(1, "宋江");

    static {// 手动创建 暂时
        root.left = new Node(2, "卢俊义");
        root.right = new Node(3, "吴用");
        root.left.left = new Node(4, "公孙胜");
        root.left.right = new Node(5, "关胜");
        root.right.left = new Node(6, "林冲");
        root.right.right = new Node(7, "秦明");
//        root.left.left.left = new Node(8,"呼延灼");
//        root.left.left.right = new Node(9,"花荣");
    }

    /**
     * @param No 查找的排名
     * @description 前序查找
     * @author 俊昭
     * @date 2022/5/4
     */
    public static void preSearch(int No) {
        Node temp = root.midSearch(No);
        if (temp != null) {
            System.out.println(root.preSearch(No));
        } else {
            System.out.println("未找到");
        }
    }

    /**
     * @param No 查找的排名
     * @description 中序查找
     * @author 俊昭
     * @date 2022/5/4
     */
    public static void midSearch(int No) {
        Node temp = root.midSearch(No);
        if (temp != null) {
            System.out.println(root.midSearch(No));
        } else {
            System.out.println("未找到");
        }
    }

    /**
     * @param No 查找的排名
     * @description 后序查找
     * @author 俊昭
     * @date 2022/5/4
     */
    public static void postSearch(int No) {
        Node temp = root.midSearch(No);
        if (temp != null) {
            System.out.println(root.postSearch(No));
        } else {
            System.out.println("未找到");
        }
    }


}
